package com.zelin.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * 功能: 自动填充的数据处理
 * 参数:
 * 返回值:
 * 时间: 2021/7/23 15:41
 */
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill ....");
        //自动填充createTime字段
        this.setFieldValByName("createTime",new Date(),metaObject);
        //自动填充乐观锁字段(第一次添加时版本号为1)
        this.setFieldValByName("version",1,metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("start update fill ....");
        this.setFieldValByName("updateTime",new Date(),metaObject);
        // Object version = this.getFieldValByName("version", metaObject);
        // int ver = new Integer(version + "");
        // ver++;
        // System.out.println("ver = " + ver);
        //
        // this.setFieldValByName("version",ver,metaObject);
    }
}